package com.miui.theme.custom.di

import com.miui.theme.custom.data.ConfigDataStore
import com.miui.theme.custom.navigation.AppComposeNavigator
import com.miui.theme.custom.navigation.AppScreen
import com.miui.theme.custom.navigation.IHubComposeNavigator
import com.miui.theme.custom.viewmodel.ConfigViewModel
import com.miui.theme.custom.viewmodel.CreateTableViewModel
import com.miui.theme.custom.viewmodel.LoginViewModel
import com.miui.theme.custom.viewmodel.MainViewModel
import com.miui.theme.custom.viewmodel.TableCrudViewModel
import com.miui.theme.custom.viewmodel.TableDetailsViewModel
import org.koin.core.module.dsl.viewModel
import org.koin.dsl.module

val modules =
    module {
        single { IHubComposeNavigator() }
        single<AppComposeNavigator<AppScreen>> { get() }
        single { ConfigDataStore(get()) }
        viewModel { ConfigViewModel(get()) }
        viewModel { LoginViewModel(get()) }
        viewModel { MainViewModel(get()) }
        viewModel { TableCrudViewModel(get()) }
        viewModel { CreateTableViewModel(get()) }
        viewModel { TableDetailsViewModel(get()) }
    }